guice 常用的绑定方式 <4>4>
guice在moudle中提供了良好的绑定方法。
它提供了普通的绑定,自定义注解绑定,按名称绑定等。
下面直接看代码:
1 | import com.google.inject.AbstractModule; |
类似于普通绑定,很简单:
1 | public class Dog { |
类似于注解绑定:
1 | import java.lang.annotation.ElementType; |
1 |
|
然后是一个接口,两个实现:
1 | public interface Dao { |
1 | public class DaoImpl2 implements Dao{ |
最后就是通过guice自定义的Name方式绑定:
1 | import com.google.inject.Inject; |
测试代码:
1 | import com.google.inject.Guice; |
使用provider
在 Guice 中 Providers 就像 Factories 一样创建和返回对象。在大部分情况下,客户端可以直接依赖 Guice
框架来为服务(Services)创建依赖的对象。但是少数情况下,应用程序代码需要为一个特定的类型定制对象创建流程(Object
creation process),这样可以控制对象创建的数量,提供缓存(Cache)机制等,这样的话我们就要依赖 Guice 的
Provider 类。
1 | import com.google.inject.ProvidedBy; |
1 | import com.google.inject.Provider; |
1 | public class MockConnection implements ConnectionI{ |
1 | import com.google.inject.AbstractModule; |
1 | import com.google.inject.Guice; |
Summary一下:
普通绑定用得最多,
name那个方法绑定用于多个接口实现,
自定注解那种按特殊情况使用。
说明一下,name那个注解绑定,用于绑定属性常量也很方便。